package fr.grobim.hangovers.gestionBudget.actions.champs.factures;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.collections.CollectionUtils;

import fr.grobim.hangovers.gestionBudget.beans.comptes.Membre;
import fr.grobim.hangovers.gestionBudget.beans.factures.Facture;
import fr.grobim.hangovers.gestionBudget.beans.factures.PeriodiciteFacture;

public class FactureChamps {
	
	private Integer id;
	
	private Integer sourceId;
	
	private String periodiciteCode;
	
	private Integer payeurParDefautId;
	
	private String montantDeBase;
	
	private String membresParDefautSelectionnes;
	
	private List<Integer> listMembresParDefautSelectionnes;
	
	public FactureChamps() {
		
	}
	
	public FactureChamps(Facture facture) {
		this.id = facture.getId();
		this.sourceId = facture.getSource().getId();
		this.periodiciteCode = facture.getPeriodicite();
		if (facture.getPayeurParDefaut() != null) {
			this.payeurParDefautId = facture.getPayeurParDefaut().getId();
		}
		if (facture.getMontantDeBase() != null) {
			this.montantDeBase = facture.getMontantDeBase().toString();
		}
		this.listMembresParDefautSelectionnes = new ArrayList<Integer>(facture.getMembresConcernesParDefaut().size());
		if (CollectionUtils.isNotEmpty(facture.getMembresConcernesParDefaut())) {
			for (Membre membre : facture.getMembresConcernesParDefaut()) {
				this.listMembresParDefautSelectionnes.add(membre.getId());
			}
		}
		
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Integer getSourceId() {
		return sourceId;
	}

	public void setSourceId(Integer sourceId) {
		this.sourceId = sourceId;
	}

	public String getPeriodiciteCode() {
		return periodiciteCode;
	}
	
	public PeriodiciteFacture getPeriodiciteFacture() {
		return PeriodiciteFacture.get(periodiciteCode);
	}

	public void setPeriodiciteCode(String periodiciteCode) {
		this.periodiciteCode = periodiciteCode;
	}

	public Integer getPayeurParDefautId() {
		return payeurParDefautId;
	}

	public void setPayeurParDefautId(Integer payeurParDefautId) {
		this.payeurParDefautId = payeurParDefautId;
	}

	public String getMontantDeBase() {
		return montantDeBase;
	}

	public void setMontantDeBase(String montantDeBase) {
		this.montantDeBase = montantDeBase;
	}

	public String getMembresParDefautSelectionnes() {
		return membresParDefautSelectionnes;
	}

	public void setMembresParDefautSelectionnes(String membresParDefautSelectionnes) {
		this.membresParDefautSelectionnes = membresParDefautSelectionnes;
	}

	public List<Integer> getListMembresParDefautSelectionnes() {
		return listMembresParDefautSelectionnes;
	}

	public void setListMembresParDefautSelectionnes(List<Integer> listMembresParDefautSelectionnes) {
		this.listMembresParDefautSelectionnes = listMembresParDefautSelectionnes;
	}

}
